/**
 * Jest 配置文件
 * 解决 ES 模块导入问题，特别是 axios 等第三方库
 */
module.exports = {
  // 使用 Create React App 的默认配置
  preset: 'react-scripts',
  
  // 设置测试环境
  testEnvironment: 'jsdom',
  
  // 模块名称映射，将 axios 映射到 CommonJS 版本
  moduleNameMapper: {
    '^axios$': require.resolve('axios/dist/node/axios.cjs'),
  },
  
  // 转换忽略模式，允许转换 node_modules 中的 axios
  transformIgnorePatterns: [
    'node_modules/(?!(axios|lodash-es)/)'
  ],
  
  // 设置文件扩展名
  moduleFileExtensions: [
    'js',
    'jsx',
    'ts',
    'tsx',
    'json'
  ],
  
  // 测试文件匹配模式
  testMatch: [
    '<rootDir>/src/**/__tests__/**/*.(js|jsx|ts|tsx)',
    '<rootDir>/src/**/?(*.)(spec|test).(js|jsx|ts|tsx)'
  ],
  
  // 设置文件
  setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts']
};